
/*
 * Lazy Load - jQuery plugin for lazy loading images
 *
 * Copyright (c) 2007-2012 Mika Tuupola
 *
 * Licensed under the MIT license:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Project home:
 *   http://www.appelsiini.net/projects/lazyload
 *
 * Version:  1.7.2
 *
 */
(function (a, b) {
	$window = a(b), a.fn.lazyload = function (c) {
		function f() {
			var b = 0;
			d.each(function () {
				var c = a(this);
				if (e.skip_invisible && !c.is(":visible")) {
					return;
				}
				if (!a.abovethetop(this, e) && !a.leftofbegin(this, e)) {
					if (!a.belowthefold(this, e) && !a.rightoffold(this, e)) {
						c.trigger("appear");
					} else {
						if (++b > e.failure_limit) {
							return !1;
						}
					}
				}
			});
		}
		var d = this, e = {threshold:0, failure_limit:0, event:"scroll", effect:"show", container:b, data_attribute:"original", skip_invisible:!0, appear:null, load:null};
		return c && (undefined !== c.failurelimit && (c.failure_limit = c.failurelimit, delete c.failurelimit), undefined !== c.effectspeed && (c.effect_speed = c.effectspeed, delete c.effectspeed), a.extend(e, c)), $container = e.container === undefined || e.container === b ? $window : a(e.container), 0 === e.event.indexOf("scroll") && $container.bind(e.event, function (a) {
			return f();
		}), this.each(function () {
			var b = this, c = a(b);
			b.loaded = !1, c.one("appear", function () {
				if (!this.loaded) {
					if (e.appear) {
						var f = d.length;
						e.appear.call(b, f, e);
					}
					a("<img />").bind("load", function () {
						c.hide().attr("src", c.data(e.data_attribute))[e.effect](e.effect_speed), b.loaded = !0;
						var f = a.grep(d, function (a) {
							return !a.loaded;
						});
						d = a(f);
						if (e.load) {
							var g = d.length;
							e.load.call(b, g, e);
						}
					}).attr("src", c.data(e.data_attribute));
				}
			}), 0 !== e.event.indexOf("scroll") && c.bind(e.event, function (a) {
				b.loaded || c.trigger("appear");
			});
		}), $window.bind("resize", function (a) {
			f();
		}), f(), this;
	}, a.belowthefold = function (c, d) {
		var e;
		return d.container === undefined || d.container === b ? e = $window.height() + $window.scrollTop() : e = $container.offset().top + $container.height(), e <= a(c).offset().top - d.threshold;
	}, a.rightoffold = function (c, d) {
		var e;
		return d.container === undefined || d.container === b ? e = $window.width() + $window.scrollLeft() : e = $container.offset().left + $container.width(), e <= a(c).offset().left - d.threshold;
	}, a.abovethetop = function (c, d) {
		var e;
		return d.container === undefined || d.container === b ? e = $window.scrollTop() : e = $container.offset().top, e >= a(c).offset().top + d.threshold + a(c).height();
	}, a.leftofbegin = function (c, d) {
		var e;
		return d.container === undefined || d.container === b ? e = $window.scrollLeft() : e = $container.offset().left, e >= a(c).offset().left + d.threshold + a(c).width();
	}, a.inviewport = function (b, c) {
		return !a.rightofscreen(b, c) && !a.leftofscreen(b, c) && !a.belowthefold(b, c) && !a.abovethetop(b, c);
	}, a.extend(a.expr[":"], {"below-the-fold":function (c) {
		return a.belowthefold(c, {threshold:0, container:b});
	}, "above-the-top":function (c) {
		return !a.belowthefold(c, {threshold:0, container:b});
	}, "right-of-screen":function (c) {
		return a.rightoffold(c, {threshold:0, container:b});
	}, "left-of-screen":function (c) {
		return !a.rightoffold(c, {threshold:0, container:b});
	}, "in-viewport":function (c) {
		return !a.inviewport(c, {threshold:0, container:b});
	}, "above-the-fold":function (c) {
		return !a.belowthefold(c, {threshold:0, container:b});
	}, "right-of-fold":function (c) {
		return a.rightoffold(c, {threshold:0, container:b});
	}, "left-of-fold":function (c) {
		return !a.rightoffold(c, {threshold:0, container:b});
	}});
})(jQuery, window);

